home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / ncurses-5.3 / ncurses / lib_keyname.c < prev    next >
Encoding:
C/C++ Source or Header  |  2002-10-27  |  5.3 KB  |  208 lines

  1. /* generated by MKkeyname.awk */
  2.  
  3. #include <curses.priv.h>
  4. #include <tic.h>
  5.  
  6. const struct kn _nc_key_names[] = {
  7.     { "KEY_A1", KEY_A1 },
  8.     { "KEY_A3", KEY_A3 },
  9.     { "KEY_B2", KEY_B2 },
  10.     { "KEY_BACKSPACE", KEY_BACKSPACE },
  11.     { "KEY_BEG", KEY_BEG },
  12.     { "KEY_BREAK", KEY_BREAK },
  13.     { "KEY_BTAB", KEY_BTAB },
  14.     { "KEY_C1", KEY_C1 },
  15.     { "KEY_C3", KEY_C3 },
  16.     { "KEY_CANCEL", KEY_CANCEL },
  17.     { "KEY_CATAB", KEY_CATAB },
  18.     { "KEY_CLEAR", KEY_CLEAR },
  19.     { "KEY_CLOSE", KEY_CLOSE },
  20.     { "KEY_COMMAND", KEY_COMMAND },
  21.     { "KEY_COPY", KEY_COPY },
  22.     { "KEY_CREATE", KEY_CREATE },
  23.     { "KEY_CTAB", KEY_CTAB },
  24.     { "KEY_DC", KEY_DC },
  25.     { "KEY_DL", KEY_DL },
  26.     { "KEY_DOWN", KEY_DOWN },
  27.     { "KEY_EIC", KEY_EIC },
  28.     { "KEY_END", KEY_END },
  29.     { "KEY_ENTER", KEY_ENTER },
  30.     { "KEY_EOL", KEY_EOL },
  31.     { "KEY_EOS", KEY_EOS },
  32.     { "KEY_EXIT", KEY_EXIT },
  33.     { "KEY_F(0)", KEY_F(0) },
  34.     { "KEY_F(1)", KEY_F(1) },
  35.     { "KEY_F(10)", KEY_F(10) },
  36.     { "KEY_F(11)", KEY_F(11) },
  37.     { "KEY_F(12)", KEY_F(12) },
  38.     { "KEY_F(13)", KEY_F(13) },
  39.     { "KEY_F(14)", KEY_F(14) },
  40.     { "KEY_F(15)", KEY_F(15) },
  41.     { "KEY_F(16)", KEY_F(16) },
  42.     { "KEY_F(17)", KEY_F(17) },
  43.     { "KEY_F(18)", KEY_F(18) },
  44.     { "KEY_F(19)", KEY_F(19) },
  45.     { "KEY_F(2)", KEY_F(2) },
  46.     { "KEY_F(20)", KEY_F(20) },
  47.     { "KEY_F(21)", KEY_F(21) },
  48.     { "KEY_F(22)", KEY_F(22) },
  49.     { "KEY_F(23)", KEY_F(23) },
  50.     { "KEY_F(24)", KEY_F(24) },
  51.     { "KEY_F(25)", KEY_F(25) },
  52.     { "KEY_F(26)", KEY_F(26) },
  53.     { "KEY_F(27)", KEY_F(27) },
  54.     { "KEY_F(28)", KEY_F(28) },
  55.     { "KEY_F(29)", KEY_F(29) },
  56.     { "KEY_F(3)", KEY_F(3) },
  57.     { "KEY_F(30)", KEY_F(30) },
  58.     { "KEY_F(31)", KEY_F(31) },
  59.     { "KEY_F(32)", KEY_F(32) },
  60.     { "KEY_F(33)", KEY_F(33) },
  61.     { "KEY_F(34)", KEY_F(34) },
  62.     { "KEY_F(35)", KEY_F(35) },
  63.     { "KEY_F(36)", KEY_F(36) },
  64.     { "KEY_F(37)", KEY_F(37) },
  65.     { "KEY_F(38)", KEY_F(38) },
  66.     { "KEY_F(39)", KEY_F(39) },
  67.     { "KEY_F(4)", KEY_F(4) },
  68.     { "KEY_F(40)", KEY_F(40) },
  69.     { "KEY_F(41)", KEY_F(41) },
  70.     { "KEY_F(42)", KEY_F(42) },
  71.     { "KEY_F(43)", KEY_F(43) },
  72.     { "KEY_F(44)", KEY_F(44) },
  73.     { "KEY_F(45)", KEY_F(45) },
  74.     { "KEY_F(46)", KEY_F(46) },
  75.     { "KEY_F(47)", KEY_F(47) },
  76.     { "KEY_F(48)", KEY_F(48) },
  77.     { "KEY_F(49)", KEY_F(49) },
  78.     { "KEY_F(5)", KEY_F(5) },
  79.     { "KEY_F(50)", KEY_F(50) },
  80.     { "KEY_F(51)", KEY_F(51) },
  81.     { "KEY_F(52)", KEY_F(52) },
  82.     { "KEY_F(53)", KEY_F(53) },
  83.     { "KEY_F(54)", KEY_F(54) },
  84.     { "KEY_F(55)", KEY_F(55) },
  85.     { "KEY_F(56)", KEY_F(56) },
  86.     { "KEY_F(57)", KEY_F(57) },
  87.     { "KEY_F(58)", KEY_F(58) },
  88.     { "KEY_F(59)", KEY_F(59) },
  89.     { "KEY_F(6)", KEY_F(6) },
  90.     { "KEY_F(60)", KEY_F(60) },
  91.     { "KEY_F(61)", KEY_F(61) },
  92.     { "KEY_F(62)", KEY_F(62) },
  93.     { "KEY_F(63)", KEY_F(63) },
  94.     { "KEY_F(7)", KEY_F(7) },
  95.     { "KEY_F(8)", KEY_F(8) },
  96.     { "KEY_F(9)", KEY_F(9) },
  97.     { "KEY_FIND", KEY_FIND },
  98.     { "KEY_HELP", KEY_HELP },
  99.     { "KEY_HOME", KEY_HOME },
  100.     { "KEY_IC", KEY_IC },
  101.     { "KEY_IL", KEY_IL },
  102.     { "KEY_LEFT", KEY_LEFT },
  103.     { "KEY_LL", KEY_LL },
  104.     { "KEY_MARK", KEY_MARK },
  105.     { "KEY_MESSAGE", KEY_MESSAGE },
  106.     { "KEY_MOUSE", KEY_MOUSE },
  107.     { "KEY_MOVE", KEY_MOVE },
  108.     { "KEY_NEXT", KEY_NEXT },
  109.     { "KEY_NPAGE", KEY_NPAGE },
  110.     { "KEY_OPEN", KEY_OPEN },
  111.     { "KEY_OPTIONS", KEY_OPTIONS },
  112.     { "KEY_PPAGE", KEY_PPAGE },
  113.     { "KEY_PREVIOUS", KEY_PREVIOUS },
  114.     { "KEY_PRINT", KEY_PRINT },
  115.     { "KEY_REDO", KEY_REDO },
  116.     { "KEY_REFERENCE", KEY_REFERENCE },
  117.     { "KEY_REFRESH", KEY_REFRESH },
  118.     { "KEY_REPLACE", KEY_REPLACE },
  119.     { "KEY_RESET", KEY_RESET },
  120.     { "KEY_RESIZE", KEY_RESIZE },
  121.     { "KEY_RESTART", KEY_RESTART },
  122.     { "KEY_RESUME", KEY_RESUME },
  123.     { "KEY_RIGHT", KEY_RIGHT },
  124.     { "KEY_SAVE", KEY_SAVE },
  125.     { "KEY_SBEG", KEY_SBEG },
  126.     { "KEY_SCANCEL", KEY_SCANCEL },
  127.     { "KEY_SCOMMAND", KEY_SCOMMAND },
  128.     { "KEY_SCOPY", KEY_SCOPY },
  129.     { "KEY_SCREATE", KEY_SCREATE },
  130.     { "KEY_SDC", KEY_SDC },
  131.     { "KEY_SDL", KEY_SDL },
  132.     { "KEY_SELECT", KEY_SELECT },
  133.     { "KEY_SEND", KEY_SEND },
  134.     { "KEY_SEOL", KEY_SEOL },
  135.     { "KEY_SEXIT", KEY_SEXIT },
  136.     { "KEY_SF", KEY_SF },
  137.     { "KEY_SFIND", KEY_SFIND },
  138.     { "KEY_SHELP", KEY_SHELP },
  139.     { "KEY_SHOME", KEY_SHOME },
  140.     { "KEY_SIC", KEY_SIC },
  141.     { "KEY_SLEFT", KEY_SLEFT },
  142.     { "KEY_SMESSAGE", KEY_SMESSAGE },
  143.     { "KEY_SMOVE", KEY_SMOVE },
  144.     { "KEY_SNEXT", KEY_SNEXT },
  145.     { "KEY_SOPTIONS", KEY_SOPTIONS },
  146.     { "KEY_SPREVIOUS", KEY_SPREVIOUS },
  147.     { "KEY_SPRINT", KEY_SPRINT },
  148.     { "KEY_SR", KEY_SR },
  149.     { "KEY_SREDO", KEY_SREDO },
  150.     { "KEY_SREPLACE", KEY_SREPLACE },
  151.     { "KEY_SRESET", KEY_SRESET },
  152.     { "KEY_SRIGHT", KEY_SRIGHT },
  153.     { "KEY_SRSUME", KEY_SRSUME },
  154.     { "KEY_SSAVE", KEY_SSAVE },
  155.     { "KEY_SSUSPEND", KEY_SSUSPEND },
  156.     { "KEY_STAB", KEY_STAB },
  157.     { "KEY_SUNDO", KEY_SUNDO },
  158.     { "KEY_SUSPEND", KEY_SUSPEND },
  159.     { "KEY_UNDO", KEY_UNDO },
  160.     { "KEY_UP", KEY_UP },
  161.     { 0, 0 }};
  162.  
  163. NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)
  164. {
  165. static char **table;
  166. int i;
  167. char name[20];
  168. char *p;
  169.  
  170.     if (c == -1) return "-1";
  171.  
  172.     for (i = 0; _nc_key_names[i].name != 0; i++)
  173.         if (_nc_key_names[i].code == c)
  174.             return (NCURSES_CONST char *)_nc_key_names[i].name;
  175.     if (c < 0 || c >= 256) return 0;
  176.  
  177.     if (table == 0)
  178.         table = typeCalloc(char *, 256);
  179.     if (table == 0)
  180.         return keyname(256);
  181.  
  182.     if (table[c] == 0) {
  183.         p = name;
  184.         if (c >= 128) {
  185.             strcpy(p, "M-");
  186.             p += 2;
  187.             c -= 128;
  188.         }
  189.         if (c < 32)
  190.             sprintf(p, "^%c", c + '@');
  191.         else if (c == 127)
  192.             strcpy(p, "^?");
  193.         else
  194.             sprintf(p, "%c", c);
  195.         table[c] = strdup(name);
  196.     }
  197.     return (NCURSES_CONST char *)table[c];
  198. }
  199.  
  200. #if USE_WIDEC_SUPPORT
  201. NCURSES_EXPORT(NCURSES_CONST char *) key_name (wchar_t c)
  202. {
  203.     NCURSES_CONST char *result = keyname((int)c);
  204.     if (!strncmp(result, "M-", 2)) result = 0;
  205.     return result;
  206. }
  207. #endif
  208.